关于main形参的菜鸟问题````(VC++)
来源:百度知道 编辑:UC知道 时间:2024/05/22 01:13:47
#include <stdio.h>
#include <conio.h>
#include <windows.h>
#include <stdlib.h>
int main(int argc,char *argv[])
{
if(argc==2)
{
printf("%d-------%s",argc,argv[argc-1]);
return 0;
}else if(argc==3)
{
printf("%s\n\n\n",argv[argc-1]);
if(argv[argc-1]=="s" || argv[argc-1]=="S")
{
printf("TRUE");
return 0;
}else
{
printf("FALSE");
return 1;
}
}else{return 1;}
}
输入:
s.exe 100 回车
s.exe 100 s 回车
s.exe 100 S 回车
运行结果:
2-------100
s
FALSE
S
FALSE
为什么?哪里出错了?
if(argv[argc-1]=="s" || argv[argc-1]=="S") //这句有什么问题吗?
#include <conio.h>
#include <windows.h>
#include <stdlib.h>
int main(int argc,char *argv[])
{
if(argc==2)
{
printf("%d-------%s",argc,argv[argc-1]);
return 0;
}else if(argc==3)
{
printf("%s\n\n\n",argv[argc-1]);
if(argv[argc-1]=="s" || argv[argc-1]=="S")
{
printf("TRUE");
return 0;
}else
{
printf("FALSE");
return 1;
}
}else{return 1;}
}
输入:
s.exe 100 回车
s.exe 100 s 回车
s.exe 100 S 回车
运行结果:
2-------100
s
FALSE
S
FALSE
为什么?哪里出错了?
if(argv[argc-1]=="s" || argv[argc-1]=="S") //这句有什么问题吗?
argv[argc-1]=="S"
字符串是不能这么比较的,如果这么比较,那只能是比较首地址
还是老老实实地一个字符一个字符比较吧。
加上一个#include <string> 应该可以这样比较 argv[argc-1]=="S"